import request from '@/utils/request'

/**
 * 获取网站全局配置
 * @param {number} websiteId - 网站ID
 */
export function getWebsiteConfig(websiteId) {
  return request({
    url: `/static_web/api/website/${websiteId}/settings/`,
    method: 'get'
  })
}

/**
 * 更新网站全局配置
 * @param {number} websiteId - 网站ID
 * @param {object} config - 配置对象
 * @param {boolean} merge - 是否合并模式（默认true）
 */
export function updateWebsiteConfig(websiteId, config, merge = true) {
  return request({
    url: `/static_web/api/website/${websiteId}/settings/update/`,
    method: 'post',
    data: {
      config,
      merge
    }
  })
}

/**
 * 重置网站配置为默认值
 * @param {number} websiteId - 网站ID
 */
export function resetWebsiteConfig(websiteId) {
  return request({
    url: `/static_web/api/website/${websiteId}/settings/reset/`,
    method: 'post'
  })
}

/**
 * 生成网站配置文件
 * @param {number} websiteId - 网站ID
 */
export function generateConfigFile(websiteId) {
  return request({
    url: `/static_web/api/website/${websiteId}/settings/generate/`,
    method: 'post'
  })
}

/**
 * 获取页面配置（包含合并后的完整配置）
 * @param {number} pageId - 页面ID
 */
export function getPageConfig(pageId) {
  return request({
    url: `/static_web/api/page/${pageId}/settings/`,
    method: 'get'
  })
}

/**
 * 更新页面配置
 * @param {number} pageId - 页面ID
 * @param {object} config - 配置对象
 * @param {boolean} merge - 是否合并模式（默认true）
 */
export function updatePageConfig(pageId, config, merge = true) {
  return request({
    url: `/static_web/api/page/${pageId}/settings/update/`,
    method: 'post',
    data: {
      config,
      merge
    }
  })
}

/**
 * 清除页面自定义配置
 * @param {number} pageId - 页面ID
 */
export function clearPageConfig(pageId) {
  return request({
    url: `/static_web/api/page/${pageId}/settings/clear/`,
    method: 'post'
  })
}

/**
 * 获取页面特定配置项的值
 * @param {number} pageId - 页面ID
 * @param {array} keys - 配置键路径数组
 */
export function getConfigValue(pageId, keys) {
  return request({
    url: `/static_web/api/page/${pageId}/settings/value/`,
    method: 'get',
    params: {
      keys: keys.join(',')
    }
  })
}
